//
//  MsgDefine.h
//  SuperLight
//
//  Created by Charlie Liao on 14-4-24.
//  Copyright (c) 2014年 Charlie Liao. All rights reserved.
//

#ifndef MsgDefine_h
#define MsgDefine_h

#define DATA_START 0xAA
#define DATA_END   0x55

#pragma pack(1)

#define MAX_RFADDR_USE 4
/*
 * @op_code:led变化指令,通信指令等
 * @addr:发送者的地址
 * @data:数据,混色时为R/G/B排列
 */
struct rf_data_pkt_t{
	uint8_t op_code;
	uint8_t addr[MAX_RFADDR_USE];
	uint8_t data[3];
};

typedef struct rf_data_pkt_t msg_pkt;

#define MAX_NET_PKT_PAYLOAD sizeof(msg_pkt) /* 网络通信包最大的payload */

struct NetComuDataPkt_t{
	u_char magic1;
	u_char magic2;
	msg_pkt data;
	u_char check_sum;
	u_char magic3;
	u_char magic4;
};

#define NET_COMU_SIZE sizeof(struct NetComuDataPkt_t) /* 与wifi通信包大小 */

#pragma pack()

#define RF_DATA_PKT_SIZE sizeof(struct rf_data_pkt_t)

#define OP_CODE_BROADCAST 1
#define OP_CODE_WHOAREYOU 2 /* 配对询问地址 */
#define OP_CODE_IAM		3	/* 配对的回应 */
#define OP_CODE_BRIGHTNESS 4 /* 调亮度 */
#define OP_CODE_COLOR_CHANGE 5 /* RGB颜色一起变化 */
#define OP_CODE_ONLY_WHITE 6 /* 只有白光变化 */
#define OP_CODE_ALL_OFF 7 /* 全部关闭 */
#define OP_CODE_ALL_ON 8 /* 全部打开(恢复上一次状态) */
#define OP_CODE_FAIL 9 /* 该操作失败 */
#define OP_CODE_TIMEOUT 10 /* 该操作超时 */
#define OP_CODE_R_CHANGE 11 /* R颜色变化 */
#define OP_CODE_G_CHANGE 12 /* G颜色变化 */
#define OP_CODE_B_CHANGE 13 /* B颜色变化 */
#define OP_CODE_GET_HOST_VER 14 /* host ver */
#define OP_CODE_GET_CLIENT_VER 15 /* client ver */

#define OP_CODE_RGB_TURN 16 /* RGB轮流亮 */
#define OP_CODE_RGB_BLINK 17 /* 闪烁 */
#define OP_CODE_POWER_OFF_AFTER 18 /* 定时关机 */
#define OP_CODE_POWER_ON_AFTER 19 /* 定时开机 */
#define OP_CODE_COLOR_SMOOTH 20 /* RGB颜色随机变化 */
#define OP_CODE_RGB_TURN_ONMIC 21 /* 随着麦克风RGB轮流亮 */
#define OP_CODE_COLOR_SMOOTH_ONMIC 22 /* 随着麦克风RGB颜色随机变化 */
#define OP_CODE_PURE_RED 23 /* 纯红 */
#define OP_CODE_PURE_GREEN 24 /* 纯绿 */
#define OP_CODE_PURE_BLUE 25 /* 纯蓝 */

#define OP_CODE_GET_FUNCTION 90 /* 获取板子的功能,例如以后wifi直接控制 */


#endif